// 友好日期
/**
 * 友好日期
 *  传值规则
 * 1~2为友好日期
 * 1格式为：yyyy年mm月dd日 h时m分
 * 2格式为：yyyy-mm-dd h:m
 * 
 * 3为转为日期格式
 * 格式为：yyyy-mm-dd h:m:s
 */
Date.prototype.friendlyTime = function(num:number) {  //使用forEach遍历对时间戳进行转换
    const time = this
    let dataTime = +new Date()  //获取当前时间的时间戳
    // 获取的数据时间戳 - 当前时间的时间戳 / 1000
    let distance = (dataTime - time) / 1000   //转为秒
    if(3 === num){
        let data = new Date(time)
            let year = data.getFullYear()       // 年
            let mouth = (data.getMonth() + 1 + '').padStart(2,"0")     // 月
            let day = (data.getDate() + '').padStart(2,"0")            // 日
            let hours = (data.getHours() + '').padStart(2,"0")         // 时
            let minutes = (data.getMinutes() + '').padStart(2,"0")     // 分
            let seconds = (data.getSeconds() + '').padStart(2,"0")     // 秒
            // 根据传递过来的值进行判断
            return year + '-' + mouth + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds
    }else{
        if (distance < 30) {    // 30秒前
            return "刚刚";
        } else if (distance < 60) {
            return "1分钟以内";
        } else if (distance < 60 * 60) {    // XX分钟前
            return Math.floor((distance / 60)) + "分钟前";
        } else if (distance < (60 * 60 * 24)) { // 24小时
            return Math.floor((distance / (60 * 60))) + "小时前";
        } else if (distance < (60 * 60 * 48)) { // 48小时后
            return "2天前";
        } else {
            let data = new Date(time)
            let year = data.getFullYear()       // 年
            let mouth = (data.getMonth() + 1 + '').padStart(2,"0")     // 月
            let day = (data.getDate() + '').padStart(2,"0")            // 日
            let hours = (data.getHours() + '').padStart(2,"0")         // 时
            let minutes = (data.getMinutes() + '').padStart(2,"0")     // 分
            let seconds = (data.getSeconds() + '').padStart(2,"0")     // 秒
            // 根据传递过来的值进行判断
            switch (num) {
                case 1:
                    return year + '年' + mouth + '月' + day + '日 ' + hours + '时' + minutes + '分'
                    break;
                case 2:
                    return year + '-' + mouth + '-' + day + ' ' + hours + ':' + minutes
                    break;
                default:
                    break;
            }
        }
    }
}
